-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix post-GC purging of streams view time histogram #3364
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from the bug on the component-book-keeping this looks good. In reality that case is pretty rare, but still seems worth fixing for completeness.
a32d34a
to
c7ebb4c
Compare
Thanks for that @jleibs, it wasn't too bad keeping track of the individual components, and the code makes much more sense now imho! |
What
--memory-limit
) not correctly applied to streams histogram #2517The datastore is not the only place we store data. For each node in the entity tree we store a time histogram of where we have data. This was never properly purged post GC - a very rough heuristic was instead used (throw away everything up to the oldest time in the store - which will be an even worse heursistic after #3357).
With this PR, the store gc will book-keep exactly what was deleted, and it will be properly purged from all secondary indices.
The resulting code is a bit complicated, because the store has no idea about the hierarchical nature of the entity paths, but we store the time histograms (and other book-keeping) for each node. That is, logging to
/foo/bar
we will note the data on/
,/foo
and/foo/bar
, but the data will only be registered in the store for/foo/bar
.I also fixed a bunch of other smaller things that came up.
Best reviewed commit-by-commit.
Checklist